package com.chenfan.mcn.mq.message;

import com.alibaba.fastjson.annotation.JSONType;
import com.chenfan.mcn.mq.MessageType;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 费收_费用(cf_charge_common）
 * </p>
 *
 * @author admin
 * @since 2021-02-27
 */
@Data
@JSONType(typeName = MessageType.CHARGE)
public class CfChargeCommonMessage extends AbstractMetaMessage implements Serializable {

    private static final long serialVersionUID = -584671472845771810L;

    /**
     * 业务类型：1-货品采购; 2-销售订单; 3-MCN; 4-WMS
     */
    private Integer chargeSourceType = 3;

    /**
     * 1=红人分成费  2=客户返点费 3=MCN收入 4=红人采购费 5=年度返点费 6 = 平台手续费
     */
    private Integer chargeType;

    /**
     * AR=收、AP=付；
     */
    private String arapType;

    /**
     * 费用来源单号:1.MCN收入取收入合同编号SR20201231675;2.红人分成费,客户返点费,红人采购费:取执行单号：ZXD20201231675;3.年度返点费 取年度返点申请单号
     */
    private String chargeSourceCode;

    /**
     * 费用来源明细: 默认取值等于来源单号，其中MCN收入费用记执行单号
     */
    private String chargeSourceDetail;

    /**
     *
     */
    private String chargeSourceDetail2;

    /**
     * 币种
     */
    private String currencyCode;

    /**
     * 汇率
     */
    private BigDecimal exchangeRate;

    /**
     * 税率
     */
    private BigDecimal taxRate;

    /**
     * 计费单位
     */
    private String chargeUnit = "单";

    /**
     * 数量
     */
    private Integer chargeQty;

    /**
     * 单价(pp)
     */
    private BigDecimal pricePp;

    /**
     * 总价(pp)
     */
    private BigDecimal amountPp;

    /**
     * 结算主体
     */
    private String balance;

    /**
     * 财务主体取值 业务单据 我司签约主体 字段
     */
    private String financeEntity;

    /**
     * 自动生成的按@createdate留空；手动创建费用时界面填入(格式:4位数字年,2位数字月)
     */
    private Date chargeMonthBelongTo;

    /**
     * 备注
     */
    private String remark;

    /**
     * 应收日期
     */
    private Date chargeDate;

    /**
     * 结算模板：1=内部红人执行单模板
     * ，2= 外部红人执行单模板，3= 红人采购费/年度返点/客户返点模板
     */
    private Integer settTemplate;

    /**
     * 财务信息id
     */
    private Long accountId;

    /**
     * 结算主体类型(1=红人；2=MCN客户；3=销售客户；4=货主，5=供应商)
     */
    private Integer balanceType;

    /**
     * 发票日期
     */
    private Date taxInvoiceDate;

    /**
     * 发票号
     */
    private String taxInvoiceNo;
}
